@import 'tailwindcss';
@import 'tw-animate-css';

/*
variants
目前知道两种变体
  1 hover, focus, pseudo-class variants 
  2 sm: 响应式     responsive variants
  3 dark
  4 primary, secondary,
  5 arbitrary variants 
*/
/* 需要移除这行代码，不然border就不起作用 */
/* @import 'tailwindcss/preflight'; */

/* 
 1 自定义变体dark，和@variant dark 冲突， 只有父元素存在dark时，才进入dark mode 
 2 定义了这个dark自定义变体后，可以添加类似 dark:bg-amber-600 这样的utility
*/
@custom-variant dark (&:is(.dark *));

/* 自定义主题 htimecc，
  1 'htimecc'这么名字不重要。 
  2 '--font-htime'属于--font-* namespace , 会生成.font-htime { font-family: PingFang SC, Microsoft YaHei, 微软雅黑 }
*/
@theme htimecc {
  --font-htime: PingFang SC, Microsoft YaHei, 微软雅黑;
  --htime-text-utility-4: 1rem;
  --htime-text-utility-8: 2rem;
  --text-4: 1rem;
  /* --htime-lineheight-utility-1: 1.6; */
}

/* 会覆盖默认的theme */
@theme inline {
  /* --radius namespace == rounded-sm */
  --radius-sm: calc(var(--radius) - 4px);

  --radius-md: calc(var(--radius) - 2px);

  /* --radius namespace == rounded-lg */
  --radius-lg: var(--radius);

  --radius-xl: calc(var(--radius) + 4px);

  /* --color-* namespace == bg-background */
  --color-background: var(--background);

  /* --color-* namespace == text-foreground */
  --color-foreground: var(--foreground);

  /* --color-* namespace == bg-card */
  --color-card: var(--card);

  /* --color-* namespace == text-card-foreground */
  --color-card-foreground: var(--card-foreground);

  --color-popover: var(--popover);

  --color-popover-foreground: var(--popover-foreground);

  --color-primary: var(--primary);

  --color-primary-foreground: var(--primary-foreground);

  --color-secondary: var(--secondary);

  --color-secondary-foreground: var(--secondary-foreground);

  --color-muted: var(--muted);

  --color-muted-foreground: var(--muted-foreground);

  --color-accent: var(--accent);

  --color-accent-foreground: var(--accent-foreground);

  --color-destructive: var(--destructive);

  --color-border: var(--border);

  --color-input: var(--input);

  --color-ring: var(--ring);

  --color-chart-1: var(--chart-1);

  --color-chart-2: var(--chart-2);

  --color-chart-3: var(--chart-3);

  --color-chart-4: var(--chart-4);

  --color-chart-5: var(--chart-5);

  --color-sidebar: var(--sidebar);

  --color-sidebar-foreground: var(--sidebar-foreground);

  --color-sidebar-primary: var(--sidebar-primary);

  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);

  --color-sidebar-accent: var(--sidebar-accent);

  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);

  --color-sidebar-border: var(--sidebar-border);

  --color-sidebar-ring: var(--sidebar-ring);
}

:root {
  color-scheme: light dark;
  --radius: 0.625rem;

  --background: oklch(1 0 0);

  --foreground: oklch(0.145 0 0);

  --card: oklch(1 0 0);

  --card-foreground: oklch(0.145 0 0);

  --popover: oklch(1 0 0);

  --popover-foreground: oklch(0.145 0 0);

  --primary: oklch(0.205 0 0);

  --primary-foreground: oklch(0.985 0 0);

  --secondary: oklch(0.97 0 0);

  --secondary-foreground: oklch(0.205 0 0);

  --muted: oklch(0.97 0 0);

  --muted-foreground: oklch(0.556 0 0);

  --accent: oklch(0.97 0 0);

  --accent-foreground: oklch(0.205 0 0);

  --destructive: oklch(0.577 0.245 27.325);

  --border: oklch(0.922 0 0);

  --input: oklch(0.922 0 0);

  --ring: oklch(0.708 0 0);

  --chart-1: oklch(0.646 0.222 41.116);

  --chart-2: oklch(0.6 0.118 184.704);

  --chart-3: oklch(0.398 0.07 227.392);

  --chart-4: oklch(0.828 0.189 84.429);

  --chart-5: oklch(0.769 0.188 70.08);

  --sidebar: oklch(0.985 0 0);

  --sidebar-foreground: oklch(0.145 0 0);

  --sidebar-primary: oklch(0.205 0 0);

  --sidebar-primary-foreground: oklch(0.985 0 0);

  --sidebar-accent: oklch(0.97 0 0);

  --sidebar-accent-foreground: oklch(0.205 0 0);

  --sidebar-border: oklch(0.922 0 0);

  --sidebar-ring: oklch(0.708 0 0);
}

.dark {
  --background: oklch(0.145 0 0);

  --foreground: oklch(0.985 0 0);

  --card: oklch(0.205 0 0);

  --card-foreground: oklch(0.985 0 0);

  --popover: oklch(0.205 0 0);

  --popover-foreground: oklch(0.985 0 0);

  --primary: oklch(0.922 0 0);

  --primary-foreground: oklch(0.205 0 0);

  --secondary: oklch(0.269 0 0);

  --secondary-foreground: oklch(0.985 0 0);

  --muted: oklch(0.269 0 0);

  --muted-foreground: oklch(0.708 0 0);

  --accent: oklch(0.269 0 0);

  --accent-foreground: oklch(0.985 0 0);

  --destructive: oklch(0.704 0.191 22.216);

  --border: oklch(1 0 0 / 10%);

  --input: oklch(1 0 0 / 15%);

  --ring: oklch(0.556 0 0);

  --chart-1: oklch(0.488 0.243 264.376);

  --chart-2: oklch(0.696 0.17 162.48);

  --chart-3: oklch(0.769 0.188 70.08);

  --chart-4: oklch(0.627 0.265 303.9);

  --chart-5: oklch(0.645 0.246 16.439);

  --sidebar: oklch(0.205 0 0);

  --sidebar-foreground: oklch(0.985 0 0);

  --sidebar-primary: oklch(0.488 0.243 264.376);

  --sidebar-primary-foreground: oklch(0.985 0 0);

  --sidebar-accent: oklch(0.269 0 0);

  --sidebar-accent-foreground: oklch(0.985 0 0);

  --sidebar-border: oklch(1 0 0 / 10%);

  --sidebar-ring: oklch(0.556 0 0);
}
/* https://developer.mozilla.org/en-US/docs/Web/CSS/@layer 靠后权重更高*/
@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  body {
    @apply bg-background text-foreground;
  }
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    border-color: var(--color-gray-200, currentColor);
  }
  .tailwind-container {
    margin: --spacing(4);
    /* background-color: var(--background); */
    /* @variant dark {
      background: red;
    } */
  }
}
/*
  自定义utility
  可直接在项目中使用
  也可以结合 hover, foucs, lg等等这些variant使用
 */
@utility htime-utility {
  background-color: blue;
}
@utility htime-complex-utility {
  .child {
    background-color: blue;
  }
}
@utility htime-text-utility-* {
  font-size: --value(--htime-text-utility-*); /* Matching theme values */
  tab-size: --value(integer); /* Bare values tab-size type是 integer */
  tab-size: --value([integer]);
  tab-size-: --value(--tab-size-*, integer, [integer]); /* 防止最左边的自定义变量不存在  */
}

/* Modifiers */
/* @utility text-* {
  font-size: --value(--text-*, [length]);
  line-height: --modifier(--leading-*, [length], [*]);

  Reference a value based on the utility's modifier. e.g. the 6 in text-md/6

  length: 是有单位的 一种type，不是interger
} */
@utility htime-lineheight-utility-* {
  font-size: --value(--htime-lineheight-utility-*, [length]);
  line-height: --modifier(--htime-lineheight-utility-*, [length], [*]);
}

/* we rely on the CSS ratio data type */
@utility aspect-* {
  aspect-ratio: --value(--aspect-ratio-*, ratio, [ratio]);
}
